//////////////////////////////////////////////////////////////////////////

#ifndef _IACCEPTOR_H_
#define _IACCEPTOR_H_

//////////////////////////////////////////////////////////////////////////

#ifndef _OBSERVABLE_H_
#include "observable.h"
#endif

//////////////////////////////////////////////////////////////////////////


/** IAcceptor interface. Instance of acceptor 
*   accepts incoming TCP connections from clients 
*   and notifies observers about that. It also
*   establishes UDP connection.
*
*
*  @author   Pasechnik Roman
*  @since    Nov 27th, 2009
*  @updated  Jan 19th, 2010
*/
class IAcceptor : public Observable
{
//////////////////////////////////////////////////////////////////////////

public:

//////////////////////////////////////////////////////////////////////////


    /** Destructor */
    virtual ~IAcceptor() {}


//////////////////////////////////////////////////////////////////////////


    /** Start accepting */
    virtual void Start() = 0;


//////////////////////////////////////////////////////////////////////////
};



//////////////////////////////////////////////////////////////////////////

#endif

//////////////////////////////////////////////////////////////////////////
